/* 
 * Copyright (c) 2012, Fromentin Xavier, Schnell Michaël, Dervin Cyrielle, Brabant Quentin
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *      * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *      * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *      * The names of its contributors may not be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL Fromentin Xavier, Schnell Michaël, Dervin Cyrielle OR Brabant Quentin 
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
package kameleon.gui.util;

/**
 * Interface containing constants for the keys used in the language
 * files.
 * 
 * @author		Fromentin Xavier, Schnell Michaël
 * @version		1.0
 */
public interface LanguageConstants {
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    Menu                                                        *|
	|*                                                                *|
	\* -------------------------------------------------------------- */

	/**
	 * Key for the text for the configuration menu title.
	 */
	public static final String CONFIGURATION_MENU = 
			"configuration_menu" ; //$NON-NLS-1$

	/**
	 * Key for the tooltip for the configuration menu title.
	 */
	public static final String CONFIGURATION_MENU_TOOLTIP = 
			"configuration_menu_tooltip" ; //$NON-NLS-1$

	/**
	 * Key for the text for the language sub-menu title.
	 */
	public static final String LANGUAGE_SELECTION_MENU = 
			"language_selection_menu" ; //$NON-NLS-1$

	/**
	 * Key for the tooltip for the language sub-menu title.
	 */
	public static final String LANGUAGE_SELECTION_MENU_TOOLTIP = 
			"language_selection_menu_tooltip" ; //$NON-NLS-1$

	/**
	 * Key for the text for the French language entry from 
	 * the language sub-menu.
	 */
	public static final String LANGUAGE_SELECTION_MENU_FR = 
			"language_selection_menu_fr" ; //$NON-NLS-1$

	/**
	 * Key for the test for the English language entry from 
	 * the language sub-menu.
	 */
	public static final String LANGUAGE_SELECTION_MENU_EN = 
			"language_selection_menu_en" ; //$NON-NLS-1$

	/**
	 * Key for the text of the tools menu.
	 */
	public static final String TOOLS_MENU = 
			"tools_menu" ; //$NON-NLS-1$

	/**
	 * Key used for the tooltip of the tools menu.
	 */
	public static final String TOOLS_MENU_TOOLTIP = 
			"tools_menu_tooltip" ; //$NON-NLS-1$

	/**
	 * Key used for the text of the delete analyzer menu item.
	 */
	public static final String DELETE_ANALYZER_MENU = 
			"delete_analyzer_menu" ; //$NON-NLS-1$

	/**
	 * Key used for the tooltip of the delete analyzer menu item.
	 */
	public static final String DELETE_ANALYZER_MENU_TOOLTIP = 
			"delete_analyzer_menu_tooltip" ; //$NON-NLS-1$
	
	/**
	 * Key used for the text of the delete generator menu item.
	 */
	public static final String DELETE_GENERATOR_MENU = 
			"delete_generator_menu" ; //$NON-NLS-1$

	/** 
	 * Key used for the tooltip of the delete generator menu item.
	 */
	public static final String DELETE_GENERATOR_MENU_TOOLTIP = 
			"delete_generator_menu_tooltip" ; //$NON-NLS-1$
	
	/**
	 * Key used for the text of the delete generator menu item.
	 */
	public static final String LOOK_AND_FEEL_MENU = 
			"look_and_feel_menu" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    GenerationView                                              *|
	|*                                                                *|
	\* -------------------------------------------------------------- */
	
	/**
	 * Key for the border title of the generation view.
	 */
	public static final String GENERATION_TITLE_BORDER = 
			"generation_title_border" ; //$NON-NLS-1$

	/**
	 * Key for the text of the generation button.
	 */
	public static final String GENERATE_BUTTON = 
			"generate_button" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    HistoryView                                                 *|
	|*                                                                *|
	\* -------------------------------------------------------------- */

	/**
	 * Key for the border title of the history view.
	 */
	public static final String HISTORY_TITLE_BORDER = 
			"history_title_border" ; //$NON-NLS-1$
	
	/**
	 * Key for the add button of the browse dialog (used to add files).
	 */
	public static final String ADD_FILE =
			"add_file" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    ViewMessages & View*Message                                 *|
	|*                                                                *|
	\* -------------------------------------------------------------- */

	/**
	 * Key for the border title of the message view.
	 */
	public static final String MESSAGES_TITLE_BORDER = 
			"messages_title_border" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when starting the addition of a
	 * plug-in.
	 */
	public static final String ADD_PLUG_IN_START_MESSAGE = 
			"add_plugin_start_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when a plug-in was successfully added.
	 * 
	 * <p>The text takes one parameter: the format name of the added 
	 * plug-in.
	 */
	public static final String ADD_ANALYZER_SUCESS_MESSAGE = 
			"add_analyzer_success_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when a plug-in was successfully added.
	 * 
	 * <p>The text takes one parameter: the format name of the added 
	 * plug-in.
	 */
	public static final String ADD_GENERATOR_SUCESS_MESSAGE = 
			"add_generator_success_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when a plug-in failed the be added.
	 */
	public static final String ADD_PLUG_IN_ERROR_MESSAGE = 
			"add_plugin_error_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when starting the removal of a
	 * plug-in.
	 * 
	 * <p>The text takes one parameter: the format name of the added 
	 * plug-in.
	 */
	public static final String REMOVE_ANALYZER_START_MESSAGE = 
			"remove_analyzer_start_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when starting the removal of a
	 * plug-in.
	 * 
	 * <p>The text takes one parameter: the format name of the added 
	 * plug-in.
	 */
	public static final String REMOVE_GENERATOR_START_MESSAGE = 
			"remove_generator_start_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when a plug-in was successfully
	 * removed.
	 * 
	 * <p>The text takes one parameter: the format name of the added 
	 * plug-in.
	 */
	public static final String REMOVE_ANALYZER_SUCESS_MESSAGE = 
			"remove_analyzer_success_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when a plug-in was successfully
	 * removed.
	 * 
	 * <p>The text takes one parameter: the format name of the added 
	 * plug-in.
	 */
	public static final String REMOVE_GENERATOR_SUCESS_MESSAGE = 
			"remove_generator_success_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when a plug-in failed to be removed.
	 * 
	 * <p>The text takes one parameter: the format name of the added 
	 * plug-in.
	 */
	public static final String REMOVE_ANALYZER_ERROR_MESSAGE = 
			"remove_analyzer_error_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when a plug-in failed to be removed.
	 * 
	 * <p>The text takes one parameter: the format name of the added 
	 * plug-in.
	 */
	public static final String REMOVE_GENERATOR_ERROR_MESSAGE = 
			"remove_generator_error_msg" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when the analyzing part of a 
	 * generation process starts.
	 */
	public static final String GENERATION_ANALYZING_START = 
			"generation_analyzing_start" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when the analyzing part of a
	 * generation process finished successfully.
	 * 
	 * <p>The text takes one parameter: the name (or path) of 
	 * the analyzed file.
	 */
	public static final String GENERATION_ANALYZING_SUCCESS = 
			"generation_analyzing_success" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when the generating part of a 
	 * generation process starts.
	 * 
	 * <p>The text takes one parameter: the name (or path) of 
	 * the generated file.
	 */
	public static final String GENERATION_GENERATING = 
			"generation_generating" ; //$NON-NLS-1$
	
	/**
	 * Key for the text displayed when the generation process failed.
	 */
	public static final String GENERATION_ERROR = 
			"generation_error" ; //$NON-NLS-1$
	
	/**
	 * Key for the text displayed when the generation process
	 * finished for some of the requested files.
	 */
	public static final String GENERATION_PARTIAL_SUCCESS = 
			"generation_partial_success" ; //$NON-NLS-1$
	
	/**
	 * Key for the text displayed when the generation process
	 * finished successfully for all of the requested files.
	 */
	public static final String GENERATION_SUCCESS = 
			"generation_success" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    SelectionView                                               *|
	|*                                                                *|
	\* -------------------------------------------------------------- */
	
	/**
	 * Key for the border title of the message view.
	 */
	public static final String SELECTION_TITLE_BORDER = 
			"selection_title_border" ; //$NON-NLS-1$

	/**
	 * Key for the label used for the current file name output field.
	 */
	public static final String NAME_LABEL = 
			"name_label" ; //$NON-NLS-1$

	/**
	 * Key for the label used for the last generation date output field.
	 */
	public static final String LAST_GENERATED = 
			"last_generated" ; //$NON-NLS-1$

	/**
	 * Key for the label used for the file charset input field.
	 */
	public static final String CHARSET_SELECTION = 
			"charset_selection" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when no file is currently selected.
	 */
	public static final String NO_FILE = 
			"no_file" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed when the selected file has never been
	 * used for generation.
	 */
	public static final String NEVER_GENERATED = 
			"never_generated" ; //$NON-NLS-1$

	/**
	 * Key used for the tooltip of the more information button.
	 */
	public static final String MORE_INFO_BUTTON = 
			"more_info_button" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    FormatView                                                  *|
	|*                                                                *|
	\* -------------------------------------------------------------- */

	/**
	 * Key for the border title of the format view.
	 */
	public static final String FORMAT_TITLE_BORDER = 
			"format_title_border" ; //$NON-NLS-1$

	/**
	 * Key used for the tooltip of the unknown format picture.
	 */
	public static final String UNKNOWN_FORMAT = 
			"unknown_format" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    EntryFormatSelectionFrame                                   *|
	|*                                                                *|
	\* -------------------------------------------------------------- */

	/**
	 * Key for the title of the entry format selection view.
	 */
	public static final String ENTRY_FORMAT_TITLE = 
			"entry_format_selection_title" ; //$NON-NLS-1$

	/**
	 * Key for the title of the entry format selection view.
	 */
	public static final String ENTRY_FORMAT_EXPLANATION = 
			"entry_format_selection_explanation" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    DeleteAnalyzerFrame & DeleteGeneratorFrame                  *|
	|*                                                                *|
	\* -------------------------------------------------------------- */
	
	/**
	 * Key for the explanation text of the delete analyzer frame.
	 */
	public static final String DELETE_ANALYZER_EXPLANATION =
			"delete_analyzer_explanation" ; //$NON-NLS-1$
	
	/**
	 * Key for the explanation text of the delete analyzer frame.
	 */
	public static final String DELETE_GENERATOR_EXPLANATION =
			"delete_generator_explanation" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    MoreInformationFrame                                        *|
	|*                                                                *|
	\* -------------------------------------------------------------- */

	/**
	 * Key for the title of the more information frame.
	 * 
	 * <p>The text takes one parameter: the name (or path) of 
	 * the concerned file.
	 */
	public static final String ABOUT = "about" ; //$NON-NLS-1$

	/**
	 * Key for the title for the path of the generated file.
	 */
	public static final String PATH = "path" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    Various                                                     *|
	|*                                                                *|
	\* -------------------------------------------------------------- */
	
	/**
	 * Key used for the noun used for analyzer plug-ins.
	 */
	public static final String ANALYZER =
			"analyzer" ; //$NON-NLS-1$
	
	/**
	 * Key used for the text used by the browse button.
	 */
	public static final String BROWSE_BUTTON = 
			"browse_button" ; //$NON-NLS-1$
	/**
	 * Key used for the frame title of the delete analyzer frame.
	 */
	public static final String DELETE_ANALYZER_WINDOW_TITLE =
			"delete_analyzer_window_title" ; //$NON-NLS-1$

	/**
	 * Key used for the text displayed by the delete pop-up menu entry.
	 */
	public static final String DELETE_BUTTON =
			"delete_button" ; //$NON-NLS-1$
	
	/**
	 * Key used for the frame title of the delete generator frame.
	 */
	public static final String DELETE_GENERATOR_WINDOW_TITLE =
			"delete_generator_window_title" ; //$NON-NLS-1$
	
	/**
	 * Key used for the noun used for generator plug-ins.
	 */
	public static final String GENERATOR =
			"generator" ; //$NON-NLS-1$

	/**
	 * Key used for the frame title of the file selection frame.
	 */
	public static final String SELECTION_WINDOW_TITLE =
			"selection_window_title" ; //$NON-NLS-1$

	/**
	 * Key used for the text used by the select button.
	 */
	public static final String SELECT_BUTTON =
			"select_button" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed instead of the analyzer pictures
	 * when no analyzer plug-in has been added.
	 */
	public static final String NO_ANALYZERS =
			"no_analyzers" ; //$NON-NLS-1$

	/**
	 * Key for the text displayed instead of the generator pictures
	 * when no generator plug-in has been added.
	 */
	public static final String NO_GENERATORS =
			"no_generators" ; //$NON-NLS-1$

	/**
	 * Key used for the text displayed by the validate button.
	 */
	public static final String VALIDATE =
			"validate" ; //$NON-NLS-1$
	
	/**
	 * Key used for the title of warning pop-up frames.
	 */
	public static final String WARNING =
			"warning" ; //$NON-NLS-1$
	
	/**
	 * Key used for the title of the format line (details of a plug-in).
	 */
	public static final String FORMAT =
			"format" ; //$NON-NLS-1$
	
	/**
	 * Key used for the title of the extensions format line (details of a plug-in).
	 */
	public static final String EXTENSIONS =
			"extensions" ; //$NON-NLS-1$
	
	/**
	 * Key used for the title of the executable format line (details of a plug-in).
	 */
	public static final String EXECUTABLE =
			"executable" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    Error messages                                              *|
	|*                                                                *|
	\* -------------------------------------------------------------- */
	
	/**
	 * Key used for the error message displayed when the analyzer
	 * configuration file could not be read.
	 */
	public static final String READING_ANALYZER_ERROR =
			"reading_analyzer_error" ; //$NON-NLS-1$

	/**
	 * Key used for the error message displayed when the generator
	 * configuration file could not be read.
	 */
	public static final String READING_GENERATOR_ERROR =
			"reading_generator_error" ; //$NON-NLS-1$

	/**
	 * Key used for the error message displayed when the history
	 * file could not be read.
	 */
	public static final String READING_HISTORY_ERROR =
			"reading_history_error" ; //$NON-NLS-1$

	/**
	 * Key used for the error message displayed when the history
	 * file could not be written.
	 */
	public static final String WRITING_HISTORY_ERROR =
			"writing_history_error" ; //$NON-NLS-1$

	/**
	 * Key used for the basic error message displayed when the 
	 * graphical interface could not be started.
	 */
	public static final String MAIN_GUI_ERROR_MESSAGE =
			"main_gui_error_message" ; //$NON-NLS-1$

	/**
	 * Key used for the detailed error message displayed when the 
	 * graphical interface could not be started.
	 * 
	 * <p>The text takes three parameters: the class,
	 * the message and the stack trace of the exception that
	 * caused the malfunction.
	 */
	public static final String MAIN_GUI_DETAILED_ERROR_MESSAGE =
			"main_gui_error_message_detailed" ; //$NON-NLS-1$

	/**
	 * Key used for the title of the pop-up frame displayed when the 
	 * graphical interface could not be started.
	 */
	public static final String MAN_GUI_ERROR_MESSAGE_TITLE =
			"main_gui_error_message_title" ; //$NON-NLS-1$

	/**
	 * Key used for the error message displayed when a file
	 * could not be added to the history.
	 * 
	 * <p>The text takes one parameter: the name (or path) of 
	 * the added file.
	 */
	public static final String ADD_FILE_ERROR =
			"add_file_error" ; //$NON-NLS-1$
	
	/**
	 * Key used for the error message displayed when a language
	 * change failed.
	 * 
	 * <p>The text takes one parameter: the name of target language
	 * for the change.
	 */
	public static final String LANGUAGE_CHANGE_ERROR =
			"language_change_error" ; //$NON-NLS-1$
	
	/* -------------------------------------------------------------- *\
	|*                                                                *|
	|*    Messages                                                    *|
	|*                                                                *|
	\* -------------------------------------------------------------- */
	
	/**
	 * Key used for the title of the source file for a generation message.
	 */
	public static final String CONVERTING =
			"converting" ; //$NON-NLS-1$
	
	/**
	 * Key used for the title of the target file for a generation message.
	 */
	public static final String TO =
			"to" ; //$NON-NLS-1$
	
	/**
	 * Key used for the text displayed by the regenerate button.
	 */
	public static final String REGENERATE =
			"regenerate" ; //$NON-NLS-1$
	
	/**
	 * Key used for the text displayed by the waiting state.
	 */
	public static final String STATE_WAITING =
			"state_waiting" ; //$NON-NLS-1$
	
	/**
	 * Key used for the text displayed by the converting state.
	 */
	public static final String STATE_CONVERTING =
			"state_converting" ; //$NON-NLS-1$
	
	/**
	 * Key used for the text displayed by the converted state.
	 */
	public static final String STATE_CONVERTED =
			"state_converted" ; //$NON-NLS-1$
	
	/**
	 * Key used for the text displayed by the error state.
	 */
	public static final String STATE_ERROR =
			"state_error" ; //$NON-NLS-1$
	
}// interface LanguageConstants